#if !defined(_OUTPUTPARAMETER_H)
#define _OUTPUTPARAMETER_H

#include "Parameter.h"

CREATE_ALIAS( OutputParameter );

/**
 * Class to store information about an output command parameter
 */
class DECLARATION_DLL OutputParameter : public Parameter 
{
	/**
	 * Create an OutputParameter of simple type.
	 */
	OutputParameter(string name, string description, SType type) : Parameter(name, description, type)
	{
	}

	/**
	 * Create an OutputParameter of complex type.
	 */
	OutputParameter(string name, string description, TypeDescriptorSp typeDescriptor) : Parameter(name, description, typeDescriptor)
	{
	}

public:

	/**
	 * Factory method to create an OutputParameter of simple type.
	 */
	static OutputParameterSp Create(string name, string description, SType type);

	/**
	 * Factory method to create an OutputParameter of complex type.
	 */
	static OutputParameterSp Create(string name, string description, TypeDescriptorSp typeDescriptor);	

};

#endif  //_OUTPUTPARAMETER_H
